In today's computing environment the use of distributed or global transactions is becoming more widespread with the adoption of Java™ EE component based architectures. The XA standard is an X/Open™ specification for distributed transaction processing (DTP) across heterogeneous data sources (e.g. Oracle Database and DB2) that was published in 1991. A general overview of the XA specification for distributed transaction processing, including basic architecture Information can be found in the “X/Open CAE Specification—Distributed Transaction Processing: The XA Specification” (X/Open 1991) which is incorporated herein by reference. A copy of this document can be obtained by requesting X/Open Document No. XO/CAE/91/300 or ISBN 1 872630 24 3 from X/Open Company, Ltd., 1010 El Camino Real, Suite 380, Menlo Park, Calif. 94025, U.S.A. The XA specification describes the interface between the transaction coordinator and the data sources that participate in the distributed transaction. Within XA the transaction coordinator is termed the transaction manager and the participating data sources are termed the resource managers. Transaction managers and resource managers that follow the XA specification are said to be XA compliant.
Some products, such as the Oracle™ database and Oracle™ WebLogic Sever can act as either transaction managers or resource managers or both within the same XA transaction. Examples of XA transaction managers are: Oracle™ Tuxedo, Oracle™ WebLogic Server, the Oracle™ database and IBM™ WebSphere Application Server. Examples of XA resource managers are: Oracle™ Database, IBM™ DB2, MS-SQL, IBM™ MQ-Series and Java™ Message Service (JMS). Additional information concerning design implications when using XA or Oracle™ controlled distributed transactions can be found in “Oracle White Paper—XA and Oracle controlled Distributed Transactions” (Oracle 2010), which is incorporated herein by reference.
The XA specification thus describes a protocol and interface between an application server, transaction manager and one or more resource managers. The XA specification enables a plurality of resources, such as application servers and databases, to be accessed within the same transaction, thus preserving the ACID (atomicity, consistency, isolation, durability) properties of the transaction in a distributed transaction processing environment.
A transactional middleware system, or transaction oriented middleware, includes enterprise application servers that can process various transactions within an organization. With the developments in new technologies such as high performance network and multiprocessor computers, there is a need to further improve the performance of transactional middleware. These are generally the areas that embodiments of the invention are intended to address.